<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>AutoIt v2 用户注意事项</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="css/default.css" rel="stylesheet" type="text/css">
</head>
<body>

<h1>AutoIt v2 用户注意事项</h1>


<h2>优势</h2>
<ul>
<li> 享受针对 AutoIt v2 近乎完整的向后兼容性. 您可以不需要学习新语法和命令.</li>
<li>在所有 <a href="commands/IfEqual.htm">IF-类型</a> 的命令中都可以使用 <a href="commands/Else.htm">Else</a>.</li>
<li> 在 IF 和 ELSE 中可以使用 <a href="commands/Block.htm">区块</a> (多行的部分) (实际上消除了 Goto 的需要).</li>
<li> 在 <a href="commands/Loop.htm">循环</a> 内使用 <a href="commands/Break.htm">break</a> 和 <a href="commands/Continue.htm">continue</a> (另一种消除 Goto 的方法).</li>
<li> 使用许多新命令和对旧命令的增强带来的好处 (见下面).</li>
<li> 当您还没有完全准备好使用它们时, 更早地 (载入时) 而不是后面 (运行时) 捕获到低级错误和拼写错误: 捕获语法错误作为 <a href="misc/Performance.htm">优化</a> 程序的一部分. </li>
<li>获得更好的启动 <a href="misc/Performance.htm">性能</a>. </li>
</ul>

<h2>运行 AutoIt v2 (.aut) 脚本</h2>
<p>大多数 .aut 脚本可以不需要改变而使用 AutoHotkey 运行. 只有以下的 AutoIt v2 特性不被支持:</p>
<ul>
  <li>Adlib 部分 (可以使用 <a href="commands/SetTimer.htm">SetTimer</a> 代替)</li>
  <li>Break (现在可以在 <a href="commands/Loop.htm">循环</a> 中使用 <a href="commands/Break.htm">break</a> 代替)</li>
  <li>HideAutoItDebug</li>
</ul>

<h2 id="convert">把脚本从 .aut 转换为 .ahk</h2>
<p>尽管 .aut 脚本可以运行, 但为了充分利用 AutoHotkey 的新特性带来的优势 (即如果您打算改进脚本) 您应该把脚本转换为 .ahk 文件. 因为一些命令接受新的可选参数, 而这些参数如果用在 AutoIt v2 脚本上会导致其中一些命令运行不正常 (参见较远的下面获取详情), 此时转换脚本是必须的. </p>
<p>您可以自动地把 AutoIt v2 (.aut) 脚本转换为 AutoHotkey 格式 (.ahk). 转换中将使用重音符 (`) 代替反斜线 (\) 作为 <a href="commands/_EscapeChar.htm">转义符</a>. 由于在每行中转义序列准确顺序的原因, 转换比听起来更困难, 因此您不能仅仅在文本编辑器中进行搜索替换. 自动转换功能需要处理所有这些细节: </p>
<ol>
  <li>在现在的 .aut 文件名后附加　.ahk, 使得文件名以 ".aut.ahk" 结尾. </li>
  <li>用 AutoHotkey 运行此文件, 与直接运行此文件不同, 此时将在同一个目录中创建一个文件名以 "-NEW.ahk" 结尾的新文件. 这是转换后的版本. 原来的文件保持不变. </li>
  <li>如果您在脚本中使用了 <a href="commands/_EscapeChar.htm">#EscapeChar</a>, 请从转换后的文件中删除. </li>
</ol>
<p>把脚本从 .aut 转成 .ahk 后, 主要需要检查在 .ahk 文件中比 .aut 文件中支持额外参数的那些命令. 如果您在转换前文件的命令最后一个参数中使用了未转义的逗号而现在此参数不是最后一个参数, 此时这些逗号被看成分隔符. 例如:</p>
<pre>WinActivate, title, text with literal comma, here.</pre>
<p>上面这句在转换后就出现问题了. 字符串 "here." 将被看成是新的 "exclude title" 的参数. <br>
  <br>
  下面是接受新参数而可能出问题的命令列表: <br>
  <a href="commands/StringReplace.htm">StringReplace</a> <br>
  <a href="commands/StringGetPos.htm">StringGetPos</a> <br>
  <a href="commands/FileSelectFile.htm">FileSelectFile<br>
  </a><a href="commands/FileRemoveDir.htm">FileRemoveDir</a> <br>
  <a href="commands/WinClose.htm">WinClose</a>/<a href="commands/WinKill.htm">Kill</a>/<a href="commands/WinActivate.htm">Activate</a>/<a href="commands/WinMinimize.htm">Minimize</a>/<a href="commands/WinMaximize.htm">Maximize</a>/<a href="commands/WinRestore.htm">Restore</a>/<a href="commands/WinHide.htm">Hide</a>/<a href="commands/WinShow.htm">Show</a> <br>
  <a href="commands/WinSetTitle.htm">WinSetTitle</a>/<a href="commands/WinGetTitle.htm">WinGetTitle</a> <br>
<br>注意: 即使有些命令在 .ahk 文件中接受新的参数, 像 <a href="commands/IfWinExist.htm">IfWinExist</a> 这样的命令也不会产生上述问题因为程序可以区分 AutoIt v2 和 AutoHotkey 的方法. <a href="commands/WinWait.htm">WinWait</a> 这一系列命令也不会出现问题, <a href="commands/MsgBox.htm">MsgBox</a> 命令同样如此因为它可以智能的处理逗号. </p>

<h2>改进的语法</h2>
<p>除了少数例外, 所有命令都支持浮点数 (例如 3.5) 和十六进制标志 (例如 0xFF). </p>
<p>所有 IF 类型的命令中都支持关键字 <a href="commands/Else.htm">ELSE</a>. 同时也支持 <a href="commands/Block.htm">区块</a>. 例如: </p>
<p>原来的风格:</p>
<pre>IfWinExist, Notepad, , WinActivate, Notepad</pre>
<p> </p>
<p>新风格 (需要执行多行时则使用 {&hellip;} 创建区块):</p>
<pre>IfWinExist, Untitled - Notepad
{
    WinActivate   <em>; 不需要再次指定标题, 因为它将自动使用 "最近找到" 的窗口. </em>
    WinMaximize  <em>; 如果没有这行, 这段可以不用区块</em>
}
else
    Run Notepad</pre>
<p><br>
嵌套的 IF 和区块例子:</p>
<pre>if varx = 1
{
    if vary = 2
        if varz = 3
            sleep, 1
        else  <em>; 此 else 和它上面最近的 IF 匹配</em>
            sleep, 1
}
else  <em>; 此 else 和顶端的 IF 匹配因为区块防止它和 "if vary = y" 中的 if 匹配</em>
    sleep, 1</pre>
<p><br>
同样, 区块也可以用于循环. 但在下面第一个例子中不需要区块因为 if+else 被看成单个语句: </p>
<pre>Loop, 5000
    IfNotExist, c:\semaphore.txt
        sleep, 1000
    else
        break  <em>; 提前终止循环</em>
</pre>
<p><br>
这个例子需要区块:</p>
<pre>Loop  <em>; 因为没有指定循环次数, 所以这是一个无限循环除非遇到 Exit, Return, 或 Break.</em>
{
    ...
    if var &lt;= 5
        continue  <em>; 跳过区块的剩余部分并从区块的顶部开始下一次循环.</em>
    ...
    if var &gt; 25
        break  <em>; 退出循环</em>
}</pre>
<p><br>
浏览文件夹内容的 <a href="commands/LoopFile.htm">file-loop</a> 的例子(也支持 <a href="commands/LoopReg.htm">registry-loops</a> 和 <a href="commands/LoopParse.htm">parsing-loops</a>)</p>
<pre>Loop, %A_ProgramFiles%\*.txt, , 1  <em>; Recurse into subfolders.</em>
{
    MsgBox, 4, , Filename = %A_LoopFileFullPath%`n`nContinue?
    IfMsgBox, No
        break
}</pre>
<br>
<p>最后, 还支持 <a href="Variables.htm#Expressions">复杂的表达式</a> 和 <a href="Functions.htm">函数调用</a>, 例如:</p>
<pre>NetPrice := Price * (1 - Discount/100)

LargestOfTwo := Max(x, y)

if (CurrentSetting &gt; 100 or FoundColor &lt;&gt; "Blue")
    MsgBox The setting is too high or the wrong color is present.</pre>

<h2>AutoIt v2 和 AutoHotkey 的其他不同之处</h2>
<p>AutoHotkey.exe 运行 AutoIt v2 (.aut) 脚本时:</p>
<ul>
  <li>反斜线 (\) 作为转义符. 但在其他脚本类型 (.ahk, .ini) 中使用重音符 (`). 可以用 <a href="commands/_EscapeChar.htm">#EscapeChar</a> 改变此默认设置.</li>
  <li>支持禁用同行注释 (使用 <a href="commands/_AllowSameLineComments.htm">#AllowSameLineComments</a> 启用它们). </li>
  <li>在 <a href="commands/Send.htm">Send</a> 命令中可以使用井号 (#) 作为注释符号. 其他脚本类型使用 # 表示 windows 键. 例如, #y 会发送 Win-Y.</li>
  <li><a href="commands/DetectHiddenText.htm">DetectHiddenText</a> 默认为 OFF. 其他脚本类型中默认为 ON 因为这样执行的更好. </li>
  <li><a href="commands/SetBatchLines.htm">SetBatchLines</a> 默认为 1, 意味着脚本默认执行速度非常慢. 其他脚本类型使用 10ms. </li>
  <li><a href="commands/SetWinDelay.htm">SetWinDelay</a> 默认为 500. 其他脚本类型默认为 100, 这样使得窗口操作更快. </li>
  <li>对于下列命令, 扩展的 (新) 参数被禁用. 这是出于兼容性的考虑 (参见上面的转换注意事项):<br>
        <a href="commands/MsgBox.htm"> MsgBox</a><br>
        <a href="commands/FileSelectFile.htm">FileSelectFile</a> <br>
        <a href="commands/FileRemoveDir.htm">FileRemoveDir</a> <br>
        <a href="commands/IniRead.htm">IniRead</a><br>
        <a href="commands/StringReplace.htm">StringReplace</a><br>
        <a href="commands/StringGetPos.htm">StringGetPos</a><br>
        <a href="commands/WinClose.htm">WinClose</a><br>
        <a href="commands/WinKill.htm">WinKill</a><br>
        <a href="commands/WinActivate.htm">WinActivate</a><br>
        <a href="commands/WinMinimize.htm">WinMinimize</a><br>
        <a href="commands/WinMaximize.htm">WinMaximize</a><br>
        <a href="commands/WinRestore.htm">WinRestore</a><br>
        <a href="commands/WinHide.htm">WinHide</a><br>
        <a href="commands/WinShow.htm">WinShow</a><br>
        <a href="commands/WinSetTitle.htm">WinSetTitle</a><br>
        <a href="commands/WinGetTitle.htm">WinGetTitle</a></li>
</ul>
<p>脚本编译器 (<a href="Scripts.htm#ahk2exe">Ahk2Exe</a>) 不支持 AutoIt v2 (.aut) 脚本, 因为编译后的脚本无法判断是运行在 AutoIt v2 模式还是 AutoHotkey 模式. 所以需要在编译前首先把您的 .aut 脚本转换为 .ahk (参见上面). </p>
<p>与 AutoIt v2 不同, <a href="commands/IfEqual.htm">IfGreater/Less</a> 中如果其中一个输入参数不是纯数字则按字母顺序比较. </p>
<p><a href="commands/IniWrite.htm">IniWrite</a> 和 <a href="commands/IniDelete.htm">IniDelete</a>: 对于 AutoIt v2 (.aut) 脚本: 它们不会设置 <a href="misc/ErrorLevel.htm">ErrorLevel</a> 的值. 对于其他脚本类型, 如果有问题则设置 ErrorLevel 为 1 否则设置为 0. </p>
<p><a href="commands/InputBox.htm">InputBox</a>: 对于 AutoIt v2 (.aut) 脚本: 如果用户按下了取消键, 输出变量被置空所以这样可以知道按下了取消键. 对于 AutoHotkey 脚本: 输出变量被设置为用户输入的内容, 即使用户按下了取消键. 为了进行区别, 如果按下 Cancel, Alt-F4 或 X-按钮来关闭窗口则 <a href="misc/ErrorLevel.htm">ErrorLevel</a> 被设置为 1. 否则, ErrorLevel 被设置为 0. 这样可以指定取消键对输入的文本执行不同的操作. </p>
<p><a href="commands/SplashTextOn.htm">SplashTextOn</a>: AutoIt v2 (.aut) 脚本使用的弹出窗口比 AutoHotkey 脚本矮一些. 所以如果您把 .aut 脚本转换成 .ahk, 或从 .aut 脚本复制粘贴代码到 .ahk 脚本, 您可能要从窗口高度中减少像其标题栏的高度 (大概 20 像素, 但具体取决于您的桌面设置). </p>
<p>最后, 与 AutoIt v2 不同, AutoHotkey 不会把其 <a href="Variables.htm">变量</a> 保存为环境变量. 因为这样会降低性能并且操作系统限制这样的变量最大为 32 KBytes. 要明确地把一个值保存成环境变量, 请使用 <a href="commands/EnvSet.htm">EnvSet</a>, 而不是 <a href="commands/SetEnv.htm">SetEnv</a>.</p>

<h2>新语言和命令风格</h2>
<p>如果脚本的文件扩展名不是 .aut (AutoIt v2), 那么可以使用同行注释. 使用分号作为这类注释的前缀字符, 就和用在整行注释一样. 然而, 只有在分号左边至少有一个空格或 tab 时分号才被看成是注释的一部分. 如果需要在空格或制表符后使用 <em>原义</em> 的分号, 您需要在分号前使用重音符 (`) 对它进行转义. 在下面两个例子中, 变量中都含有一个原义的分号:<br>
  var = `;<br>
var =;</p>
<p>为了方便, 命令中的首个逗号可以省略 (除非首个参数为空或以 := 或 = 开始, 或命令单独处于 <a href="Scripts.htm#continuation">字串分段</a> 的顶部). 例如: Sleep 1, MsgBox test, 等.</p>
<p>对于一些命令, 您可以选用新语法代替原来 AutoIt v2 的语法. 这些命令是:</p>
<ul>
  <li>Var = value <em>; 可以代替 SetEnv, var, value. Value 可以为空, 例如 var =</em></li>
  <li>    if var &lt;&gt; value <em>; 您可以使用 &lt;&gt; != &lt; = &gt; 作为比较运算符代替 ifequal/notequal/greater, 等. </em></li>
  <li>var += 5 <em>; 此语句等同于 envadd, var, 5. 其他运算符有 -=, *=, /= </em></li>
  <li> 但是新旧命令的语法不要在同行使用:
<pre>IfEqual, x, 35, y = 55 <em>; 其中程序将无法识别 y = 55 为 IF 的动作. 
; 应该如此:</em>
IfEqual, x, 35, SetEnv, y, 55
<em>; 或者:</em>
IfEqual, x, 35
    y = 55</pre></li>
</ul>
<p>您也可以确定一个变量是否 <a href="commands/IfIn.htm">匹配</a> 列表中的某个项目. <br>
  if var [not] in item1,item2,item3 <em>; 精确匹配</em><br>
  if var [not] contains item1,item2,item3 <em>; 子字符串匹配. </em></p>
<p>... 或者一个变量是否 <a href="commands/IfBetween.htm">介于</a> 两个值之间:<br>
  if var [not] between 5 and 10</p>
<p>... 或一个变量是否为 <a href="commands/IfIs.htm">特定的数据类型</a>：<br>
  if var is number<br>
  if var is not float <em>; 不是浮点类型</em>
</p>
<p><a href="commands/SetTitleMatchMode.htm">SetTitleMatchMode</a> 命令得到改进: 除了支持　1 &amp; 2 的传统模式, 现在命令还支持单词 fast 和 slow 作为参数(例如: SetTitleMatchMode, slow). 默认为, 这是 what AutoIt v2 使用的方法. 比较起来, 对于某些类型的窗口慢速模式可以 "看见" 更多的文本. 而快速模式执行的明显更快, 这样有助于加快执行大量窗口命令的脚本速度.  只有在没有其他方法来唯一标识一个给定的窗口时才考虑使用慢速模式. 程序中包含的 Window Spy 会指出窗口中的哪部分文本只有在慢速模式才可用. </p>

<h2>改进的命令</h2>
<p>对于大多数窗口命令, 例如 WinActivate, 如果命令中不带有参数会使用由 IfWinExist 或 WinWait 命令 <a href="LastFoundWindow.htm">最近找到</a> 的窗口. 此外, 在窗口标题参数中使用字母 A 可以让命令对当前活动的 (前台) 窗口进行操作. 例如: WinClose, A </p>
<p>同样, 大多数窗口命令支持 Exclude-Title 和 Exclude-Text 的新参数. 如果一个窗口的标题包含 Exclude-Title 或其中的文本包含 Exclude-Text 则不会被匹配. </p>
<p><a href="commands/StringGetPos.htm">StringGetPos</a> 现在最后一个参数是一个新的可选参数. 如果此参数为字母 R, 搜索将从右边而不是左边开始, 并将返回最后一个子字串的位置而不是首个. </p>
<p><a href="commands/MouseClick.htm">MouseClick</a> 支持一个新的参数, 如果是字母 D, 则会一直按住按钮直到用户手动点击它或执行脚本中的下一个动作. 如果此最后一个参数是字母 U, 按钮将被释放(即使之前并没有按下这个按钮, 也将发送一个释放事件). 此外, 您也许会发现新 <a href="commands/Click.htm">Click 命令</a> 的语法更简单灵活. </p>
<p> A_Space 和 A_Tab 是两个新的内置变量, 分别表示单个空格和单个制表符. 这样避免了需要用其他方法获取一个含有空格的变量. 例如:</p>
<pre>String = String with spaces 
IfInString, String, %A_SPACE% 
    MsgBox, A space was found.
<em>; 但如果要赋值一个单独的空格给变量, 必须关闭 AutoTrim 这样
; 赋值才不会移除首尾的所有空格:</em>
AutoTrim, off 
MySpace = %A_SPACE%</pre>
<p><a href="misc/Clipboard.htm#ClipboardAll">ClipboardAll</a> 是一个新的内置变量, 它包含剪贴板上的所有内容 (例如图片和格式). 使用它可以备份一个或多个 "已存的剪贴板" 到内存或硬盘, 这些备份可以在以后恢复. 此变量在脚本临时使用剪贴板而不用担心丢失原来用户可能保存在其中的内容时尤其有用. </p>
<p><a href="commands/Run.htm">Run</a> 和 <a href="commands/Run.htm">RunWait</a> 可以运行快捷方式 (.lnk 文件), 文档, 和 URL. 例如:</p>
<pre>Run, www.yahoo.com
RunWait, New Document.doc</pre>
<p>此外, 还支持下列系统动作: properties, edit, print, find, explore, open, 和 print. 例如:</p>
<pre>Run, properties c:\autoexec.bat  <em>; 打开此文件的属性对话框.</em>
Run, edit %A_SCRIPTFULLPATH%  <em>; 执行关联的 "编辑" 动作 (如果有的话).</em></pre>
<p><a href="commands/Send.htm">Send</a> 和 <a href="commands/ControlSend.htm">ControlSend</a> 的功能得到了改进, 您不需要使用 Sleep 命令来让用户有时间释放在 Send 命令发送的热键中包含的修饰键 (Ctrl/Alt/Shift/Win). Send 命令知道应该把修饰键变成什么来将每个键发送出去. </p>
<p><a href="commands/StringReplace.htm">StringReplace</a> 可以替换所有匹配, 只需要把最后一个参数设为 "A". </p>
<p><a href="commands/StringGetPos.htm">StringGetPos</a> 现在最后一个参数是一个新的可选参数. 如果此参数是字母 R, 搜索将从右边而不是左边开始. 也就是说将返回最后一个匹配而不是首个. </p>
<p><a href="commands/MsgBox.htm">MsgBox</a> 在最后增加了一个新的可选参数: Timeout 值 (单位为秒, 经过这个时间后 MsgBox 将关闭. 此时 <a href="commands/IfMsgBox.htm">IfMsgBox</a> 将检测到值 TIMEOUT). 出于兼容性的考虑, 只有当脚本扩展名不是 .aut 时才支持这个新的参数. </p>
<p><a href="commands/IniRead.htm">IniRead</a> 在最后增加了一个新的可选参数: 如果命令读取失败, 默认赋给输出变量的值. 出于兼容性的考虑, 只有当脚本扩展名不是 .aut 时才支持这个新的参数. </p>
<p><a href="commands/FileSelectFile.htm">FileSelectFile</a> 增加了新功能. </p>

<h2>新的命令和特性</h2>
<p>下面介绍一些最值得注意的新命令和特性:</p>
<p><a href="commands/Gui.htm">GUI</a>: 创建和管理图形用户界面 (GUI) 的窗口和控件. 建立您自己的有专业外观的应用程序和表格而不需要困惑于复杂的编程语言.</p>
<p><a href="commands/Menu.htm">Menu</a>: 建立您自己定制的菜单栏, 托盘图标菜单, 和弹出菜单.</p>
<p><a href="Hotkeys.htm">Hotkeys</a>: 用于键盘, 游戏杆和鼠标. </p>
<p><a href="commands/SoundSet.htm"></a><a href="Hotstrings.htm">Hotstrings</a>: 当您输入缩写词时, 自动展开缩写 (自动替换).</p>
<p><a href="commands/DllCall.htm">DllCall</a>: 调用 DLL 中的函数, 例如标准的 Windows API 函数.</p>
<p><a href="commands/OnMessage.htm">OnMessage</a>: 指定一个当脚本接收到指定消息 (来自操作系统, 外部程序或其他脚本) 时自动运行的 <a href="Functions.htm">函数</a>.</p>
<p><a href="commands/Send.htm#SendInput">SendInput</a> 和 <a href="commands/Send.htm#SendInput">SendPlay</a>: 这两个新方法可以更快和更可靠的发送键击和鼠标点击. 此外, 比起其他模式 SendPlay 可以发送键击和鼠标点击到更多种类的游戏.</p>
<p><a href="commands/Progress.htm">Progress</a> 和 <a href="commands/Progress.htm">SplashImage</a>: 显示进度条和图像, 以及可选的文字. </p>
<p><a href="commands/OnExit.htm">OnExit</a>: 可以定义每当脚本退出时自动执行的子例程. 通过它脚本可以检测用户是否正在注销或关闭系统.</p>
<p><a href="commands/Process.htm">Process</a>: 对进程执行下列的其中一个操作: 检查进程是否存在; 改变进程的优先级; 关闭进程; 等待进程关闭.</p>
<p><a href="commands/SoundSet.htm">SoundSet</a>: 改变音频设备的多种设置 (主设备静音, 主设备音量等.)</p>
<p><a href="commands/SetTimer.htm">SetTimer</a>: 以指定的时间间隔执行一个或多个子例程.</p>
<p><a href="commands/ClipWait.htm">ClipWait</a>: 等待剪贴板包含文本内容 (变成非空的).</p>
<p><a href="commands/StatusBarWait.htm">StatusBarWait</a>: 等待窗口的状态栏包含指定的文本, 或变成空的. </p>
<p><a href="commands/StatusBarGetText.htm">StatusBarGetText</a>: 获取状态栏上的文本.</p>
<p><a href="commands/WinActivateBottom.htm">WinActivateBottom</a>: 此命令与 WinActivate 相似但它激活最老的 (最底层的) 窗口而不是最新的. 如果仅有一个匹配的窗口, 此命令将执行的和 WinActivate 一样. </p>
<p><a href="commands/DriveSpaceFree.htm">DriveSpaceFree</a>, <a href="commands/DriveGet.htm">DriveGet</a>, 和 <a href="commands/Drive.htm">Drive</a>: 获取和改变驱动器的各种信息和设置 (例如它的可用空间).</p>
<p><a href="commands/AutoTrim.htm">AutoTrim</a>, on/off (默认为 on): 当您把一个字符串赋值给变量时, 此命令控制是否自动去除字符串首尾的空白字符. 由于这个原因, 空白字符包括空格和制表符, 但不包括新行符/换行符. 因此我相信 "on" 设置的效果和 AutoIt v2 是一样的. </p>
<p><a href="commands/StringLower.htm">StringUpper</a> 和 <a href="commands/StringLower.htm">StringLower</a>: 把一个字符串中的所有字母转换为大写或小写. </p>
<p><a href="commands/ControlFocus.htm">ControlFocus</a>, <a href="commands/ControlSetText.htm">ControlSetText</a>, <a href="commands/Control.htm">Control</a>, <a href="commands/ControlGet.htm">ControlGet</a>: 这些和其他的控件命令直接对窗口上的控件进行操作.</p>
<p><a href="commands/SoundPlay.htm">SoundPlay</a>: 播放操作系统支持的任何类型的媒体文件. </p>
<p><a href="commands/SoundGet.htm">SoundGet</a>, <a href="commands/SoundSet.htm">SoundSet</a>, 和 <a href="commands/SoundSetWaveVolume.htm">SoundSetWaveVolume</a>: 获取和改变音频设备的各种设置 (主设备静音, 主设备音量, 波形音量等.)</p>
<p><a href="commands/PixelGetColor.htm">PixelGetColor</a> 和 <a href="commands/PixelSearch.htm">PixelSearch: </a>这两个命令可以获取屏幕上某点的颜色, 这样可以在应用程序或游戏状态改变时进行响应.</p>
<p><a href="commands/GetKeyState.htm">GetKeyState</a>: 检测一个按键或鼠标/游戏杆的按钮是按下还是弹起的; 获取游戏杆轴向的位置; 等.</p>
<p><a href="commands/WinMenuSelectItem.htm">WinMenuSelectItem</a>: 直接运行菜单栏项目, 即使目标窗口不是活动的.</p>
<p><a href="commands/_AllowSameLineComments.htm">#AllowSameLineComments</a>: 为了提高和 AutoIt v2 的兼容性, 扩展名为 .aut 的脚本通常不允许使用同行注释 (例如: Run, notepad <em>; 这是一个注释). 需要添加此行 #AllowSameLineComments 到脚本的顶部来允许同行注释.</em></p>
<p><a href="commands/_SingleInstance.htm">#SingleInstance</a>: 在脚本的任意位置加上此命令可以避免脚本在已经运行一个实例时再次运行实例. 相反, 将提示您是否保持原有 (旧) 实例的运行还是使用新的实例替换它. </p>
<p><a href="commands/_EscapeChar.htm">#EscapeChar</a>: 通常转义符为 "`" 但此指令允许改变它为 AutoIt v2 的转义符 (反斜线) 或您选择的其他字符. 注意默认情况下, 扩展名为 .aut 的脚本将使用反斜线作为转义符. </p>
<p><a href="commands/Suspend.htm">Suspend</a> (和相同名称的托盘菜单项): 此命令阻止启动新的热键子程序 (它不会暂停所有已经在运行的子程序 -- 可以使用 Pause 暂停这些子程序).</p>
<p>  <a href="commands/Pause.htm">Pause</a> (和相同名称的托盘菜单项): 与 Suspend 不同 -- 它将完全禁用热键 -- 而 pause 将暂停当前正在运行的线程 (如果没有, 则 pause 什么都不做).</p>
<p><a href="commands/LoopFile.htm">文件和文件夹循环</a>, <a href="commands/LoopReg.htm">注册表循环</a>, 和增强的 <a href="commands/Loop.htm">循环</a>.</p>
<p>增加了对 <a href="commands/GroupAdd.htm">窗口组</a> 的支持. 定义窗口组后, 通过 <a href="commands/GroupActivate.htm">GroupActivate</a> 命令可以遍历这个组.</p>
<p>最后, 还有许多其他的新命令, 可以在 <a href="commands/index.htm">按字母排序的命令列表</a>.</p>
</body>
</html>
